package com.gitee.dolt.security.token;

import com.gitee.dolt.security.model.AuthInfo;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Collections;
import java.util.List;

/**
 * TokenHandler介入器
 *
 * @author LYH
 */
public interface TokenHandlerIntervention {

    /**
     * 忽略token验证url匹配路径。如果包含请求方式，请这样写，/a/b/c,post|get
     *
     * @return
     */
    default List<String> ignores() {
        return Collections.emptyList();
    }

    /**
     * 不需要鉴权的路径。如果包含请求方式，请这样写，/a/b/c,post|get
     *
     * @return
     */
    default List<String> noAuths() {
        return Collections.emptyList();
    }

    /**
     * 禁用api
     *
     * @return
     */
    default List<String> disableApis() {
        return Collections.emptyList();
    }

    /**
     * 解析token后动作
     *
     * @param token
     * @param authInfo
     * @param request
     * @param response
     */
    default void afterParse(String token, AuthInfo authInfo, HttpServletRequest request, HttpServletResponse response) {

    }
}
